<?php

require_once PATH_CLASS.'base.class.php';
require_once PATH_CLASS.'membre.class.php';
require_once PATH_CLASS.'commun.class.php';
require_once PATH_CLASS.'session.class.php';

class security extends base{
  
  public static function isMembreConf($conf,$membre=null,$allowSu=true){
    $ret=false;
    
    if(!is_array($conf)){
      $conf = array($conf);
    }
    
    if(!in_array('su', $conf) && $allowSu){
      $conf[]='su';
    }
    
    if($membre==null){
      $membre = commun::getLoggedMembre();
    }
    
    if(!$membre instanceof membre && $membre!=null){
      $membre=membre::getMembreById($membre);
    }
       
    if($membre){
      foreach ($conf as $key=>$value){
        $conf[$key]="'$value'";
      }
      $db = self::getDb();
      $sql = sprintf("select count(*) from t_droits where membre_id=%d and droit_type in (%s)",$membre->membre_id,join($conf,','));
      if($db->Count($sql)>0){
        $ret=true;
      }
    }
    return $ret;
  }

  public static function isMemberSU($membre){
    $st = self::isMembreConf('su',$membre);
    return $st;
  }
  
  public static function isSU(){
    $st = false;
    $st = self::isMembreConf('su');
    return $st;
  }
  
  public static function canUpdateMembre($id){
    $st = false;
    $membre = commun::getLoggedMembre();
    if($membre){
      if(self::isMemberSU($membre) || ($membre->membre_id == $id)){
        $st=true;
      }
    }
    return $st;
  }

  public static function canUpdateTeam($id){
    $st = false;
    $membre = commun::getLoggedMembre();
    if($membre){
      // Membre est responsable (un jour)
      if($membre->isMemberOf($id,true) || self::isMemberSU($membre)){
        $st=true;
      }
    }
    return $st;
  }
  
  public static function canUpdateScore(){
    $st = self::isSU();
    return $st;
  }

  public static function canPostNews(){
    $st = self::isSU();
    return $st;
  }

  public static function canUpdateNews(){
    $st = self::isSU();
    return $st;
  }

  public static function canDeleteNews(){
    $st = self::isSU();
    return $st;
  }
  
  public  static function isAdmin(){
    $st = self::canUpdateScore();
    return $st;
  }

  public static function canPostMatchPics(){
    $st = self::isPhoto();
    return $st;
  }  

  public static function isPhoto(){
    $st = self::isMembreConf('photo');
    return $st;
  }  
    
  

  public static function headerForbidden($clean=true,$exit=true){
    if($clean) ob_clean();
    header("HTTP/1.0 403 Forbidden" );
    if($exit) exit;
  }  
  
  
  
}

